/* Storage封装 */ // key是userName属性，user是module_name,value是属性值
// 意义 从modele——name中存储值 获得值 删除值
// 或者
const STORAGE_KEY = "mail";
export default {
  // 存储值 可以字符串可以布尔值或者监听对象
	// 在module_name中添加一个值
  setItem(key, value, module_name) {
    if (module_name) {
      let val = this.getItem(module_name);
      val[key] = value;
      this.setItem(module_name, val)
    } else { // 获取Storage所有的值
      let val = this.getStorage();
      // 往里面存值
      val[key] = value;
      window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val))
    }

  },
  // 获取值
  // 获取某一块下面的属性user下面的userName
  getItem(key, module_name) {
    if (module_name) {
      // 如果有模块名称就先获取他的模块名称
      let val = this.getItem(module_name);
      // 并将模块名称的属性加入
      if (val) return val[key];
    }
    // 获取userName
    return this.getStorage()[key];
  },
  // 获取整个数据,获取storage信息
  getStorage() {
		//转换成json
    return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}');
  },
  // 清空某一个值
  clear(key,module_name) {
    // 获取整条信息
    let val = this.getStorage();
    if(module_name){
      if(!val[module_name]) return
      delete val[module_name][key];
    }else{
      delete val[key];
    }
    window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val))
  }
}